#ifndef CUSTOMCONVOLUTIONDIALOG_H
#define CUSTOMCONVOLUTIONDIALOG_H

#include <QDialog>
#include <QGridLayout>
#include <QVBoxLayout>
#include <QGroupBox>
#include <QLineEdit>
#include <QLinkedList>
#include <QPushButton>
#include <QLabel>
#include <QValidator>
//#include <QSpinBox>
//#include <QComboBox>
//#include <QCheckBox>
#include <QSpacerItem>

class CustomConvolutionDialog : public QDialog
{
Q_OBJECT
public:
    CustomConvolutionDialog(QWidget *parent = 0);
//    ~CustomConvolutionDialog();

signals:
    void matrixAccepted(double* matrix, int width, int height);
public slots:
    void acceptMatrix();

private slots:
    void resetMatrix();

private:
    QPushButton *resetButton;
    QPushButton *cancelButton;
    QPushButton *OKButton;

    QLinkedList<QLineEdit*> matrixList;

    QLineEdit *m_1_1;
    QLineEdit *m_1_2;
    QLineEdit *m_1_3;
    QLineEdit *m_1_4;
    QLineEdit *m_1_5;
    QLineEdit *m_2_1;
    QLineEdit *m_2_2;
    QLineEdit *m_2_3;
    QLineEdit *m_2_4;
    QLineEdit *m_2_5;
    QLineEdit *m_3_1;
    QLineEdit *m_3_2;
    QLineEdit *m_3_3;
    QLineEdit *m_3_4;
    QLineEdit *m_3_5;
    QLineEdit *m_4_1;
    QLineEdit *m_4_2;
    QLineEdit *m_4_3;
    QLineEdit *m_4_4;
    QLineEdit *m_4_5;
    QLineEdit *m_5_1;
    QLineEdit *m_5_2;
    QLineEdit *m_5_3;
    QLineEdit *m_5_4;
    QLineEdit *m_5_5;

    QLineEdit *divisor;
};

#endif // CUSTOMCONVOLUTIONDIALOG_H
